package com.group01.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * 用户表
 * @TableName es_user
 */
@AllArgsConstructor
@NoArgsConstructor
@Data
@Accessors(chain = true)
@TableName(value ="es_user")
public class User implements Serializable{
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 登录用户名
     */
    private String username;

    /**
     * 登录密码
     */
    private String password;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 用户头像
     */
    private String avatar;

    /**
     * 用户性别(0男，1女)
     */
    private String gender;

    /**
     * 用户状态(0正常，1禁用)
     */
    private Integer status;

    /**
     * 用户生日
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull
    private Date birthday;

    /**
     * 注册时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date registerTime;

    /**
     * 角色编号
1. 管理员
2. 普通用户
     */
    private Integer roleId;

    /**
     * 用户是否开通会员
     */
    private Boolean isVip;

    /**
     * 用户会员到期时间
     */
    private Date vipExpirationTime;

    /**
     * 用户默认的收货地址
     */
    private Integer defaultAddressId;

    /**
     * 最近登录时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    private Date latestTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;


}